BitBtn.Glyph a EOutOfResources

Otázka od: Ing. Antonin Spurny

20. 10. 2004 9:04

Ahoj,

Pouzivam: D7 Profesional, W XP pro.

Upravuju jedenu svou starsi aplikaci, puvodne vytvorenou v D2. Pravidelne se
mi objevuje chyba EOutOfResources. Je zajimave, ze se objevuje jen pokud se
k PC prihlasim na uzivatele, ve kterem jsem neinstaloval Delphi. Pokud
aplikaci spustim v uzivateli, ve kterem jsou D nainstalovany, chyba se
neprojevi.

Zajima me, jestli "BitBtn1.Glyph:= Led2On;" je korektni zpusob naplneni
obsahu Glyph nebo jestli mam radeji vymyslet jiny zpusob naplneni Glyph.
Pokud tohle prirazeni neprovadim a menim misto toho jen barvu textu
tlacitka, chyba se neprojevuje.
(Rad bych dale menil obrazek, protoze bych nemusel prekopavat vzhled cele
aplikace.)

Nize je postup jak property Glyph pracuji.

Na formulari mam tlacitka:

BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;

a deklaruju bitmapy:

Led1On,
Led2On: TBitmap;

v metode FormCreate je vytvarim a naplnuju

Led1On:= TBitmap.Create;
Led2On:= TBitmap.Create;
Led1On.LoadFromResourceName( HInstance, 'LED1ON');
Led2On.LoadFromResourceName( HInstance, 'LED2ON');

samozrejme v metode FormDestroy je uvolnuju:

Led1On.Free;
Led2On.Free;

v metode BitBtn1Click, kterou volaji vsechna tri tlacitka provadim toto:

procedure TFormPrehled.BitBtn1Click(Sender: TObject);
begin
  .....
  if Sender<>BitBtn1 then BitBtn1.Glyph:= Led2On;
  if Sender<>BitBtn2 then BitBtn2.Glyph:= Led2On;
  if Sender<>BitBtn3 then BitBtn3.Glyph:= Led2On;
  (Sender as TBitBtn).Glyph:= Led1On;
end;

V D7 by se uz nemela projevovat chyba se zpracovanim malych bitmap.